import Vue from "vue" //因为是基于vue所以先配置引入vue
import Vuex from "vuex" //之后配置引入vuex
import module1 from './modules/module1'
import pageHeightSet from './modules/pageHeightSet'
import skin from './modules/skin'
Vue.use(Vuex) //配置完成
//完成后暴露并创建一个仓库：	
const store= new Vuex.Store({
    modules:{
        module1,
        pageHeightSet,
        skin,
    },
    //初始化状态对象	
    state: {
        name: "helloVueX",
        // 定义自定义名称
        city:'城市',
        num:'100',
    },
    //自定义函数事件
    mutations: {
        setCity(state, name){
            state.city = name;//将传参设置给state的city
        },
        edits(state, data) {
            state.name = '你好vuex=========';
                // console.log('dayaa', data);

        },
        // UPDATE_PAGEHEIGHT: (state, height) => {
        //     state.pageHeight = height;
        // },
        // UPDATE_PAGEWIDTH: (state, width) => {
        //     state.pageWidth = width;
        // },
    },
    getters: {
        nameInfo(state) {
            return "姓名:" + state.name
        },
        fullInfo(state, getters) {
            return getters.nameInfo + '年龄:' + state.age
        },
        // 函数
        getCityFn(state){
        return '城市名======'+state.city
        }

    },
    // actions:{//异步
    // aEdit(context,payload){
    //     return new Promise((resolve,reject)=>{
    //         setTimeout(()=>{
    //             context.commit('edits',payload)
    //             resolve()
    //         },2000)
    //     })
    // }
    // }
    actions: {
        // 设置城市信息
        // 参数列表：{commit, state}
        // state指的是state数据
        // commit调用mutations的方法 
        // name就是调用此方法时要传的参数
        setCityName({commit,state}, name){
            // 跟后台打交道
            // 调用mutaions里面的方法
            commit("setCity", name);
        },


        // updatePageHeight({
        //     commit
        // }, height) {
        //     commit('UPDATE_PAGEHEIGHT', height)
        // },
        // updatePageWidth({
        //     commit
        // }, width) {
        //     commit('UPDATE_PAGEWIDTH', width)
        // },
        // freshTree({
        //     commit
        // }, freshTree) {
        //     commit('FRESH_TREE', freshTree)
        // },

    },

});
export default store;